// Copyright (C) 2023 即时通讯网(52im.net) & Jack Jiang.
// The RainbowChat Project. All rights reserved.
// 
// 【本产品为著作权产品，合法授权后请放心使用，禁止外传！】
// 【本次授权给：<北京小羊驼科技有限公司>，授权编号：<NT231212144350>，代码指纹：<A.702363430.550>，技术对接人微信：<ID: wxid_wbyootvkdcgj22>】
// 【授权寄送：<收件：苏先生、地址：北京市大兴区北京密码西区6号楼1单元301、电话：18613885610、邮箱：bd@huiyuanxiang-inc.com>】
// 
// 【本系列产品在国家版权局的著作权登记信息如下】：
// 1）国家版权局登记名(简称)和权证号：RainbowChat    （证书号：软著登字第1220494号、登记号：2016SR041877）
// 2）国家版权局登记名(简称)和权证号：RainbowChat-Web（证书号：软著登字第3743440号、登记号：2019SR0322683）
// 3）国家版权局登记名(简称)和权证号：RainbowAV      （证书号：软著登字第2262004号、登记号：2017SR676720）
// 4）国家版权局登记名(简称)和权证号：MobileIMSDK-Web（证书号：软著登字第2262073号、登记号：2017SR676789）
// 5）国家版权局登记名(简称)和权证号：MobileIMSDK    （证书号：软著登字第1220581号、登记号：2016SR041964）
// * 著作权所有人：江顺/苏州网际时代信息科技有限公司
// 
// 【违法或违规使用投诉和举报方式】：
// 联系邮件：jack.jiang@52im.net
// 联系微信：hellojackjiang
// 联系QQ号：413980957
// 授权说明：http://www.52im.net/thread-1115-1-1.html
// 官方社区：http://www.52im.net
package com.x52im.rainbowchat.http.logic.dto;

import com.x52im.rainbowchat.im.dto.MsgBodyRoot;
import com.x52im.rainbowchat.im.dto.MsgType;

/**
 * 离线消息的数据包装传输类。
 * <p>
 * <b>此DTO传输的数据基本对应于数据库表“离线聊天记录/MISSU_OFFLINE_HISTORY”.</b>
 * 
 * @author Jack Jiang(http://www.52im.net/space-uid-1.html)
 * @since 4.3
 */
public class OfflineMsgDTO
{
	/** 消息发送人的用户id */
	protected String user_uid;
	
	/** 
	 * 消息发送人的昵称。
	 * <p>
	 * 为何要把消息发送人的昵称取出来呢？原因是当用户取到离线消息前，可能已经把该好友从好友列表
	 * 中删除了，那么此条离线消息到达客户端时将自动以陌生人消息的形式显示出来（好友列表里没这个人了嘛），
	 * 此时这个昵称就有用了。
	 */
	protected String nickName = null;
	
	/** 消息接收人的用户id */
	protected String friend_user_uid;
	
	/** 
	 * 聊天消息类型.
	 * 
	 * @see com.x52im.rainbowchat.im.dto.MsgBodyRoot
	 */
	protected int msg_type;
	
	/** 
	 * 消息内容.
	 */
	protected String msg_content;
	
	/**
	 * 消息内容2.
	 * 
	 * <p>
	 * 目前用途：自2013-12-19日起，离线消息存放在本字段的是QoS的指纹码。
	 * 
	 * <p>
	 * 说明：目前本字段仅用在iOS端（详见ios端的说明字段）、Android端，Web端暂无需使用。
	 * 
	 * @since 4.4
	 */
	protected String msg_content2;
	
	/** 
	 * 消息发生时间戳。
	 * <p>
	 * 本时间戳为GMT标准时间，解决跨国跨时区问题，用于UI时客户端需要转换成自已
	 * 的时区后再使用哦，此字段存放的是java版无时区时间戳，形如：1510491984536） 。
	 */
	protected String history_time2;
	
	/** 
	 * 聊天模型类型。
	 * @see MsgBodyRoot
	 */
	protected String chat_type;
	
	/**
	 * 消息发生的群组id。
	 * <p>
	 * 本字段只在聊天类型为群组时有意义，否则它的值应该是null.
	 */
	protected String group_id;
	/**
	 * 消息发生的群组名称。
	 * <p>
	 * 本字段只在聊天类型为群组时有意义，否则它的值应该是null.
	 */
	protected String group_name;
	
	/** 
	 * 群聊消息扩散写前原始消息的指纹码。
	 * <p>
	 * 此指纹码目前主要用于消息“撤回”功能时。
	 * 且仅对由“人”发起的正常聊天消息有意义，对{@link MsgType#TYPE_SYSTEAM$INFO}类型的消息无意义。
	 * 
	 * @see MsgBody4Group
	 * @since 7.3
	 */
	protected String parent_fp;
	
	public String getUser_uid()
	{
		return user_uid;
	}

	public void setUser_uid(String user_uid)
	{
		this.user_uid = user_uid;
	}

	public String getNickName()
	{
		return nickName;
	}

	public void setNickName(String nickName)
	{
		this.nickName = nickName;
	}

	public String getFriend_user_uid()
	{
		return friend_user_uid;
	}

	public void setFriend_user_uid(String friend_user_uid)
	{
		this.friend_user_uid = friend_user_uid;
	}

	public int getMsg_type()
	{
		return msg_type;
	}

	public void setMsg_type(int msg_type)
	{
		this.msg_type = msg_type;
	}

	public String getMsg_content()
	{
		return msg_content;
	}

	public void setMsg_content(String msg_content)
	{
		this.msg_content = msg_content;
	}

//	public String getMsg_content2()
//	{
//		return msg_content2;
//	}
//
//	public void setMsg_content2(String msg_content2)
//	{
//		this.msg_content2 = msg_content2;
//	}

	public String getHistory_time2()
	{
		return history_time2;
	}

	public void setHistory_time2(String history_time2)
	{
		this.history_time2 = history_time2;
	}
	
	public String getHistoryTime2ForDefaultTimeZone()
	{
		return TimeToolKit.convertTimstampToDefaultTimeZone(history_time2, "MM-dd HH:mm");
	}
	
	public String getChat_type()
	{
		return chat_type;
	}

	public void setChat_type(String chat_type)
	{
		this.chat_type = chat_type;
	}

	public String getGroup_id()
	{
		return group_id;
	}

	public void setGroup_id(String group_id)
	{
		this.group_id = group_id;
	}
	
	public String getGroup_name()
	{
		return group_name;
	}

	public void setGroup_name(String group_name)
	{
		this.group_name = group_name;
	}
	
	public String getMsg_content2() {
		return msg_content2;
	}

	public void setMsg_content2(String msg_content2) {
		this.msg_content2 = msg_content2;
	}

	public String getParent_fp() {
		return parent_fp;
	}

	public void setParent_fp(String parent_fp) {
		this.parent_fp = parent_fp;
	}

	@Override
	public String toString()
	{
		return "OfflineMsgDTO[chat_type="+chat_type+", msg_type"+msg_type
				+", user_uid="+user_uid+", nickName="+nickName
				+", friend_user_uid="+friend_user_uid+", msg_content="+msg_content
				+", history_time2="+history_time2+", group_id="+group_id
				+", group_name="+group_name+", msg_content2="+this.msg_content2+", parent_fp="+parent_fp+"]";
	}
}
